package arithmetic;

import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;

/**
 * 给定一个链表，判断链表中是否有环。存在环返回 true ，否则返回 false，约束时间复杂度为 O(n)。
 * 链表用LinkedList实现 , 思路是用set去重 , 都放到set里面 , 如果set的大小跟链表大小不一致 , 表示有重复 , 表示存在环
 */
public class Homework_2 {

    public static void main(String[] args) {
        String s1 = "11";
        String s2 = "22";
        String s3 = "33";
        String s4 = "44";

        List<String> list = new LinkedList<>();

        list.add(s1);
        list.add(s2);
        list.add(s3);
        list.add(s4);
        list.add(s1);

        Set<Integer> set = new HashSet();

        for (String s : list) {
            set.add(s.hashCode());
        }

        if (set.size() < list.size()){
            System.out.println(true);
        }else {
            System.out.println(false);
        }
    }
}
